var opensdk = {};
opensdk.qqplus = null;
opensdk.qq = {};
/**qq登录 */
opensdk.qq.login = function(cb) {
        if (opensdk.qqplus == null) {
            opensdk.qqplus = api.require('QQPlus');
        }
        var qquser = {};
        opensdk.qqplus.login(function(ret, err) {
            qquser.qqopenid = ret.openId;
            qquser.accessToken = ret.accessToken;
            opensdk.qqplus.getUserInfo(function(ret, err) {
                if (ret.status) {
                    console.log(JSON.stringify(ret));
                    ret.info = JSON.parse(ret.info);
                    //qquser.city = ret.info.city;
                    // qquser.figureurl = ret.info.figureurl;
                    // qquser.figureurl_1 = ret.info.figureurl_1;
                    // qquser.figureurl_2 = ret.info.figureurl_2;
                    // qquser.figureurl_qq_1 = ret.info.figureurl_qq_1;
                    qquser.avatar = ret.info.figureurl_qq_2;
                    qquser.sex = ret.info.gender;
                    //qquser.is_yellow_vip = ret.info.is_yellow_vip;
                    //qquser.level = ret.info.level;
                    qquser.nickname = ret.info.nickname;
                    //qquser.province = ret.info.province;
                    //qquser.yellow_vip_level = ret.info.yellow_vip_level;
                    qquser.opentype = "qq";
                    console.log(JSON.stringify(qquser.avatar));
                    typeof cb == "function" && cb(qquser);
                } else {
                    api.toast({
                        msg: err.msg,
                        duration: 2000,
                        location: 'bottom'
                    });
                }
            });
        });
    }
    /**验证qq是否安装 */
opensdk.qq.installed = function(cb) {
    if (opensdk.qqplus == null) {
        opensdk.qqplus = api.require('QQPlus');
    }
    opensdk.qqplus.installed(function(ret, err) {
        typeof cb == "function" && cb(ret, err);
    });
};
/**qq分享文本 */
opensdk.qq.shareText = function(sharetext) {
    if (opensdk.qqplus == null) {
        opensdk.qqplus = api.require('QQPlus');
    }
    opensdk.qqplus.shareText({
        text: sharetext
    }, function(ret, err) {
        if (ret.status) {
            api.toast({
                msg: "分享成功！",
                duration: 2000,
                location: 'bottom'
            });
        } else {
            api.toast({
                msg: JSON.stringify(err),
                duration: 2000,
                location: 'bottom'
            });
        }
    });
};
/**
 * type 取值范围： QZone：分享到 QQ 空间,QFriend：分享给好友、讨论组、群聊
 * imgPath 要求本地路径（widget://、fs://）
 * title 要分享的图片标题，本参数仅支持 iOS 平台
 * description 要分享的图片描述，本参数仅支持 iOS 平台
 */
opensdk.qq.shareImage = function(type, imgPath, title, description) {
    if (opensdk.qqplus == null) {
        opensdk.qqplus = api.require('QQPlus');
    }
    /*
    api.showProgress({
        title: '提示',
        text: '正在打开QQ，请稍后！',
        modal: false
    });
    */
    opensdk.qqplus.shareImage({
        type: type,
        imgPath: imgPath,
        title: title,
        description: description,
    }, function(ret, err) {
        if (ret.status) {
            //  api.hideProgress();
            //api.toast({ msg: "分享成功！", duration: 2000, location: 'bottom' });
        } else {
            //api.toast({ msg: JSON.stringify(err), duration: 2000, location: 'bottom' });
        }
    });
};
/**
 * url 要分享的新闻链接地址
 * title 要分享的图片标题，本参数仅支持 iOS 平台
 * description 要分享的图片描述，本参数仅支持 iOS 平台
 * imgUrl 要分享的新闻缩略图的url（网络/本地资源图片）Android平台只支持网络图片
 * type 取值范围： QZone：分享到 QQ 空间,QFriend：分享给好友、讨论组、群聊
 */
opensdk.qq.shareNews = function(url, imgUrl, title, description, type, cb) {
    if (opensdk.qqplus == null) {
        opensdk.qqplus = api.require('QQPlus');
    }
    opensdk.qqplus.shareNews({
        url: url,
        type: type,
        imgUrl: imgUrl,
        title: title,
        description: description,
    }, function(ret, err) {
        if (ret.status) {
            //api.toast({ msg: "分享成功！", duration: 2000, location: 'bottom' });
            typeof cb == "function" && cb(ret);
        } else {
            api.toast({
                msg: JSON.stringify(err),
                duration: 2000,
                location: 'bottom'
            });
        }
    });
};

opensdk.wxplus = null;
opensdk.wx = {};
opensdk.wx.login = function(cb) {
        if (opensdk.wxplus == null) {
            opensdk.wxplus = api.require('wx');
        }
        var wxuser = {};
        opensdk.wxplus.auth(function(ret, err) {
            wxuser.code = ret.code;
            wxuser.accessToken = ret.accessToken;
            opensdk.wxplus.getToken({
                code: wxuser.code
            }, function(ret, err) {
                if (ret.status) {
                    wxuser.accessToken = ret.accessToken;
                    wxuser.openid = ret.openId;
                    opensdk.wxplus.getUserInfo({
                        accessToken: wxuser.accessToken,
                        openId: wxuser.openid
                    }, function(ret, err) {
                        console.log(JSON.stringify(err));
                        console.log(JSON.stringify(ret));
                        wxuser.wxopenid = ret.openid;
                        wxuser.wxnickname = ret.nickname;
                        wxuser.sex = ret.sex;
                        wxuser.wxavatar = ret.headimgurl;
                        wxuser.wxunionid = ret.unionid;
                        wxuser.opentype = "wx";
                        typeof cb == "function" && cb(wxuser);
                    });
                } else {
                    console.log("微信授权登录错误");
                    console.log(JSON.stringify(err));
                    api.toast({
                        msg: err.code,
                        duration: 2000,
                        location: 'bottom'
                    });
                }
            });
        });
    }
    /**微信分享文本 */
opensdk.wx.shareText = function(sharetext) {
    if (opensdk.wxplus == null) {
        opensdk.wxplus = api.require('wx');
    }
    opensdk.wxplus.shareText({
        scene: "session",
        text: sharetext
    }, function(ret, err) {
        if (ret.status) {
            //api.toast({ msg: "分享成功！", duration: 2000, location: 'bottom' });
        } else {
            //api.toast({ msg: JSON.stringify(err), duration: 2000, location: 'bottom' });
        }
    });
};
/**
 * 微信分享图片
 * scene 取值范围：session（会话）tinimele（朋友圈）favorite（收藏）
 * thumb 缩略图片的地址，支持 fs://、widget:// 协议。大小不能超过32K，若 contentUrl 为本地图片地址则本参数忽略,需要路径包含图片格式后缀，否则如果原图片为非png格式，会分享失败
 * contentUrl 分享图片的 url 地址（支持 fs://、widget://），长度不能超过10M，
 **/
opensdk.wx.shareImage = function(scene, thumb, contentUrl) {
    if (opensdk.wxplus == null) {
        opensdk.wxplus = api.require('wx');
    }
    /*
    api.showProgress({
        text: '正在打开微信，请稍后！',
        modal: false
    });*/
    console.log("分享的图片：" + contentUrl);
    opensdk.wxplus.shareImage({
        scene: scene,
        thumb: '',
        contentUrl: contentUrl
    }, function(ret, err) {
        //api.hideProgress();
        if (ret.status) {
            //api.toast({ msg: "分享成功！", duration: 2000, location: 'bottom' });
        } else {
            var message = "发送失败，请重试！";
            if (err.code == -1) {
                message = "未知错误，请重试！";
            }
            if (err.code == 0) {
                message = "发送成功！";
            }
            if (err.code == 1) {
                message = "apiKey非法！";
            }
            if (err.code == 2) {
                message = "用户取消！";
            }
            if (err.code == 3) {
                message = "发送失败，请重试！";
            }
            if (err.code == 4) {
                message = "授权拒绝，请重试！";
            }
            if (err.code == 5) {
                message = "微信服务器返回的不支持错误！";
            }
            if (err.code == 7) {
                message = "注册SDK失败！";
            }
            api.toast({
                msg: message,
                duration: 2000,
                location: 'bottom'
            });

        }

    });
};

/**
 * 微信分享图网页
 * scene 取值范围：session（会话）timeline（朋友圈）favorite（收藏）
 * title （可选项）分享网页的标题
 * description （可选项）分享网页的描述。由于微信平台限制，对不同平台部分场景本参数无效
 * thumb 缩略图片的地址，支持 fs://、widget:// 协议。大小不能超过32K，若 contentUrl 为本地图片地址则本参数忽略,需要路径包含图片格式后缀，否则如果原图片为非png格式，会分享失败
 * contentUrl 分享图片的 url 地址（支持 fs://、widget://），长度不能超过10M，
 **/
opensdk.wx.shareWebpage = function(scene, title, description, thumb, contentUrl, cb) {
    if (opensdk.wxplus == null) {
        opensdk.wxplus = api.require('wx');
    }
    opensdk.wxplus.shareWebpage({
        scene: scene,
        title: title,
        description: description,
        thumb: thumb,
        contentUrl: contentUrl
    }, function(ret, err) {
        if (ret.status) {
            api.toast({
                msg: "分享成功！",
                duration: 2000,
                location: 'bottom'
            });
            typeof cb == "function" && cb(ret);
        } else {
            api.toast({
                msg: JSON.stringify(err),
                duration: 2000,
                location: 'bottom'
            });
        }
    });
};


/**
 * 下载文件到手机
 * 返回本地文件路径 fs://、widget://
 */
opensdk.downloadfile = function($fileurl, cb) {
    if (!$fileurl) {
        return;
    }

    api.showProgress({
        title: '提示',
        text: '下载图片中，请稍后！',
        modal: false
    });
    var downloadManager = api.require('downloadManager');
    //生成本地文件名
    $localfile = $fileurl.split('/');
    $filename = $localfile[$localfile.length - 1];
    $localpath = 'fs://fuligonghui/' + $filename;
    api.download({
        url: $fileurl,
        savePath: $localpath,
        report: true,
        cache: true,
        allowResume: true
    }, function(ret, err) {
        if (ret.state == 1) {
            //下载成功
            console.log('下载成功');
            console.log(ret.savePath);
            var savePath = ret.savePath;
            api.saveMediaToAlbum({
                path: ret.savePath
            }, function(ret, err) {
                if (ret && ret.status) {
                    ret.savePath = savePath;
                    api.hideProgress();
                    typeof cb == "function" && cb(savePath);

                } else {}
            });
        } else {}
    });
    setTimeout(function(res) {
        api.hideProgress();
    }, 2000);
    //typeof cb == "function" && cb($localpath);
    // downloadManager.enqueue({
    //     url: $fileurl,
    //     savePath: $localpath,
    //     cache: true,
    //     allowResume: true,
    //     networkTypes: 'all'
    // }, function(ret, err) {
    //     if (ret) {
    //         api.saveMediaToAlbum({
    //             path : $localpath
    //             }, function(ret, err) {
    //                     if (ret && ret.status) {
    //                             alert('保存成功'+JSON.stringify(ret));
    //                     } else {
    //                             alert('保存失败');
    //                     }
    //             });
    //         typeof cb == "function" && cb(ret);
    //     } else {
    //         api.toast({ msg: JSON.stringify(err), duration: 2000, location: 'bottom' });
    //     }
    // });
}

/**
 * app分享,封装了系统的分享控件
 * text （可选项）要分享的文本信息，在iOS端，当type为image时，本参数会被忽略
 * type （可选项）分享文件的类型（iOS系统微信不支持纯文字的分享）取值范围：text //纯文本、image //图片、audio //音频文件、file //普通文件、url //网络连接
 * path 要分享的路径，若是‘file’或‘audio’类型，要求本地路径（fs://、widget://），若是url类型，需要有效的网址。若 images 不为空则模块忽略本参数。Android 平台不支持 widget:// 路径
 * images （可选项）分享的图片路径组成的数组，仅当 type 为 image 时有效；要求本地路径（fs://、widget://）。若本参数不为空则模块忽略 path 参数。android 仅支持fs://路径
 * thumbnail （可选项）分享时的缩略图；要求本地路径（fs://、widget://）。若不传则不显示。仅支持 iOS 平台
 * arrowRect （可选项）iPad中显示时，箭头指向的位置，只iPad有效
 * arrowDirection 可选项）iPad中显示时，箭头指向的方向，只iPad有效
 * contentSize （可选项）iPad中显示时，对话框大小，只iPad有效，iOS不支持
 * fixedOn （可选项）模块视图添加到指定 frame 的名字 默认：模块依附于当前 window
 * ios 可用 安卓不可用
 **/
opensdk.sharedModule = function(text, type, path, images, thumbnail, arrowRect, arrowDirection, contentSize, fixedOn) {
    var sharedModule = api.require('shareAction');
    sharedModule.share({
        text: text,
        type: type,
        path: path,
        images: images,
        thumbnail: thumbnail,
        arrowRect: arrowRect,
        arrowDirection: arrowDirection,
        contentSize: contentSize,
        fixedOn: fixedOn
    });
};

/**
 * 分享小程序
 * apiKey （可选项）从微信开放平台获取的 appid，若不传则从当前 widget 的 config.xml 中读取。
 * scene 描述：（可选项）场景，目前只支持会话 默认值：session
 * title 描述：（可选项）分享小程序的标题
 * description （可选项）分享小程序的描述。由于微信平台限制，对不同平台部分场景本参数无效
 * webpageUrl  注意：若客户端版本低于6.5.6，小程序类型分享将自动转成网页类型分享。开发者必须填写网页链接字段，确保低版本客户端能正常打开网页链接。
 * userName 分享小程序的原始 id
 * path 分享小程序的页面的路径
 * hdImageData 小程序新版本的预览图的路径(128k)(android不支持)
 * withShareTicket 是否使用带 shareTicket 的转发
 * miniProgramType 描述：分享小程序的版本（正式，开发，体验）取值范围：release：正式版 test：开发测试版 preview：体验版
 **/
opensdk.wx.shareProgram = function(title, description, thumb, path) {
    if (opensdk.wxplus == null) {
        opensdk.wxplus = api.require('wx');
    }
    opensdk.wxplus.shareProgram({
        apiKey: '',
        scene: 'session',
        title: title,
        description: description,
        thumb: thumb,
        webpageUrl: 'http://apicloud.com',
        userName: 'gh_9bd78562810e',
        path: path,
        // miniProgramType: 'release',
    }, function(ret, err) {
        if (ret.status) {
            api.toast({
                msg: "分享成功！",
                duration: 2000,
                location: 'bottom'
            });
        } else {
            api.toast({
                msg: JSON.stringify(err),
                duration: 2000,
                location: 'bottom'
            });
        }
    });
};
/**
 * 拉起小程序功能
 * apiKey （可选项）从微信开放平台获取的 appid，若不传则从当前 widget 的 config.xml 中读取。
 * miniProgramType 描述：描述：拉起小程序的类型 默认：test 取值范围：test：开发版 preview：体验版 release：正式版
 * userName 描述：拉起的小程序的username，小程序的原始ID
 * description （可选项）分享小程序的描述。由于微信平台限制，对不同平台部分场景本参数无效
 * path  描述：拉起小程序页面的可带参路径，不填默认拉起小程序首页
 **/
opensdk.wx.launchMiniProgram = function(path) {
    if (opensdk.wxplus == null) {
        opensdk.wxplus = api.require('wx');
    }
    opensdk.wxplus.launchMiniProgram({
        apiKey: '',
        miniProgramType: 'release',
        userName: 'gh_c90af1343827',
        path: path,
    }, function(ret, err) {
        console.log('跳转返回');
        console.log(JSON.stringify(err));
        console.log(JSON.stringify(ret));
        if (ret.status) {
            api.toast({
                msg: "分享成功！",
                duration: 2000,
                location: 'bottom'
            });
        } else {
            api.toast({
                msg: JSON.stringify(err),
                duration: 2000,
                location: 'bottom'
            });
        }
    });
};
/**
 * 拉起小程序功能
 * apiKey （可选项）从微信开放平台获取的 appid，若不传则从当前 widget 的 config.xml 中读取。
 * miniProgramType 描述：描述：拉起小程序的类型 默认：test 取值范围：test：开发版 preview：体验版 release：正式版
 * userName 描述：拉起的小程序的username，小程序的原始ID
 * description （可选项）分享小程序的描述。由于微信平台限制，对不同平台部分场景本参数无效
 * path  描述：拉起小程序页面的可带参路径，不填默认拉起小程序首页
 **/
opensdk.wx.launchMiniProgram3m = function(goodsid) {
    if (opensdk.wxplus == null) {
        opensdk.wxplus = api.require('wx');
    }
    var path = "pages/product/product?wareId=" + goodsid;
    path = "'pages/proxy/union/union?isUnion=1&spreadUrl=" + encodeURIComponent(goodsid);
    opensdk.wxplus.launchMiniProgram({
        apiKey: '',
        miniProgramType: 'release',
        userName: 'gh_da99466e8f21',
        path: path,
    }, function(ret, err) {
        console.log('跳转返回');
        console.log(JSON.stringify(err));
        console.log(JSON.stringify(ret));
        if (ret.status) {
            api.toast({
                msg: "分享成功！",
                duration: 2000,
                location: 'bottom'
            });
        } else {
            api.toast({
                msg: JSON.stringify(err),
                duration: 2000,
                location: 'bottom'
            });
        }
    });
};
/**
 * 拉起福利公会小程序功能
 * apiKey （可选项）从微信开放平台获取的 appid，若不传则从当前 widget 的 config.xml 中读取。
 * miniProgramType 描述：描述：拉起小程序的类型 默认：test 取值范围：test：开发版 preview：体验版 release：正式版
 * userName 描述：拉起的小程序的username，小程序的原始ID
 * description （可选项）分享小程序的描述。由于微信平台限制，对不同平台部分场景本参数无效
 * path  描述：拉起小程序页面的可带参路径，不填默认拉起小程序首页
 **/
opensdk.wx.launchMiniProgramFuliguild = function(path) {
    if (opensdk.wxplus == null) {
        opensdk.wxplus = api.require('wx');
    }
    opensdk.wxplus.launchMiniProgram({
        apiKey: '',
        miniProgramType: 'release',
        userName: 'gh_0e7477744313', //'gh_545f43b340e2',
        path: "/pages/skippage/index?to=jd&pf=pingou&url=" + encodeURIComponent(path),
    }, function(ret, err) {
        console.log('跳转返回');
        console.log(JSON.stringify(err));
        console.log(JSON.stringify(ret));
        if (ret.status) {
            api.toast({
                msg: "分享成功！",
                duration: 2000,
                location: 'bottom'
            });
        } else {
            api.toast({
                msg: JSON.stringify(err),
                duration: 2000,
                location: 'bottom'
            });
        }
    });
};
opensdk.hasPermission = function() {
        var resultList = api.hasPermission({
            list: ['storage', 'camera', 'photos', 'microphone', 'notification']
        });

        if (!resultList[0].granted || !resultList[1].granted || !resultList[2].granted || !resultList[3].granted || !resultList[4].granted) {
            api.requestPermission({
                list: ['storage', 'camera', 'photos'],
                code: 1
            }, function(ret, err) {

            });
        }
    }
    /**
     * 分享多张图片到其他应用（要求用户有安装该应用并且已登录账户，才可分享成功）
     * imgPaths 要分享的图片的路径由“,”(逗号)分隔组成的字符串；要求本地路径,相对路径如：fs://、cache://，绝对路径如：var/mobile/Containers/Data/Application/...
     * sendPattern （可选项）分享打开其他应用的模式 默认值：“MULTIPLE” 取值范围：（注意ios11及以上系统仅 "ALL" 有效）
     * app （可选项）模块提供了几个常用的分享应用。若本参数不为空则模块忽略 packageName 和 activityName 参数。
     * packageName （app 参数为空时 必需）分享应用的 包名（android）/bundleId（ios）。
     * activityName （可选项）指定分享到应用的具体页面，比如 分享到"QQ好友"。当 sendPattern 参数为“ONLY”,而 app 参数为空时 必需传该参数。仅Android有效
     * description （可选项）对分享的描述，只在个别情况下有效，比如：分享图片到“微信朋友圈”时。 注意事项：1、需要已登录第三方应用时有效；2、在ios 11及以上不要使用该字段，否则微信分享会获取不到数据！
     * dialogTitle （可选项）设置分享选择列表的标题，当sendPattern 不为“ONLY”时有用，若不设置该参数 则用户在“始终”和“仅此一次”的方式中选择始终分享应用后，再次分享时将直接分享到上次已经选择的应用。仅Android有效，且部分机型不支持（如 华为Honor 6A）
     * forResult （可选项）是否采用startActivityForResult的方式打开其他应用（采用该方式打开分享完成后会在回调的ret 中返回resultCode值）。仅Android有效
     * imgSetType （可选项）用于设置图片的添加方式。仅ios有效
     * needDecodePath （可选项）是否将图片路径转换为绝对路径，当所传 imgPaths 参数为类似“fs://cache/xx.png”的相对路径时，须设置为true。仅ios有效
        //安卓可用 ios不可以  花钱
     **/
opensdk.wx.shareImgsTo = function(scene, thumb, contentUrl) {
    console.log("执行函数");
    var inShare = api.require('inShare');
    inShare.shareImgsTo({
        imgPaths: '/var/mobile/Containers/Data/Application/FE1E79A0-7E6F-498B-8E0B-A1FD1A9C3E2E/Documents/uzfs/A6090341505472/fuligonghui/a6e87292354bfdf033dca0bdf49196ce865a7959d1bf8d025933741101560146658_exqrcode.jpg,/var/mobile/Containers/Data/Application/FE1E79A0-7E6F-498B-8E0B-A1FD1A9C3E2E/Documents/uzfs/A6090341505472/fuligonghui/a6e87292354bfdf033dca0bdf49196ce865a7959d1bf8d025933741101560146658_exqrcode.jpg',
        // sendPattern:'ONLY',
        // description:'这是分享的测试图片描述',
        //packageName:'com.tencent.mobileqq',
        //activityName:'com.tencent.mobileqq.activity.JumpActivity',
        app: 'wxFriend',
    }, function(ret, err) {
        if (ret.status) {
            alert(JSON.stringify(ret));
        } else {
            alert(ret.errorMessage);
        }
    });
};
